Linux之Shell编程(12) 您所在的位置:网站首页 shell 编程实例 Linux之Shell编程(12)

Linux之Shell编程(12)

2023-03-30 13:27| 来源: 网络整理| 查看: 265

一.Shell重定向简介

从标题我们可以知道,Shell的重定向有两种,第一种是输入重定向,另外一种就是输出重定向。其实,输入输出重定向就是改变输入与输出的方向。

输入输出方向是什么?

1.从键盘读取输入的数据,把数据拿到程序中(C语言程序、Shell 脚本程序等)使用,这是一种标准的输入方向,从键盘到程序。如果改变了它的方向,数据就从其它地方流入,这就是输入重定向。

2.程序中会产生数据,这些数据直接呈现到屏幕上,这是另一种标准的输出方向,也就是从程序到显示器。如果改变了它的方向,数据就流向其它地方,这就是输出重定向。

二.Shell输出重定向

输出重定向是指命令的结果不输出到显示器上,而是输出到其它地方,一般是文件中,这样做的好处是可以将结果保存起来。

输出重定向命令如下:

命令 解释 command > file 将输出重定向到 file command >> file 将输出以追加的方式重定向到 file。 command 2>file 以覆盖的方式,把 command 的错误信息输出到 file 文件中。 command 2>>file 以追加的方式,把 command 的错误信息输出到 file 文件中。 command >file 2>&1 以覆盖的方式,把正确输出和错误信息同时保存到同一个文件(file)中。 command >>file 2>&1 以追加的方式,把正确输出和错误信息同时保存到同一个文件(file)中。 command >file1 2>file2 以覆盖的方式,把正确的输出结果输出到 file1 文件中,把错误信息输出到 file2 文件中。 command >>file1 2>>file2 以追加的方式,把正确的输出结果输出到 file1 文件中,把错误信息输出到 file2 文件中。

注意:

1.在输出重定向中,>代表的是覆盖,>>代表的是追加。

2.command >file或者command >> file,完整的写法是command 1 >file或者command 1 >> file.默认为1,即标准输出文件。

3.如果大于1则必须写,比如:command 2>file,即将错误的输出结果重定向到file中,这里的2和>之间不能有空格。

输出重定向实例演示:

#!/bin/bash i=10 echo $i >log.txt Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。

发现在本地会生成log.txt,打开会得到10。

Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。

如果改成echo $i >>log.txt

Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。 Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。

演示输入错误内容

Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。 #!/bin/bash file="Java" cd $file 2>>log.txt

结果:

Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。

这里执行output.sh不会报错,而是会把错误信息重定向到log.txt中。

Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。

去掉2直接运行会报错。

Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。

循环输出重定向实例演示:

#!/bin/bash for i in i love china do echo $i >>log.txt done Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。

结果:

Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。

演示将正确信息和错误信息同时重定向到文件中:

#!/bin/bash for i in i love china do echo $i >>log.txt done j=Java cd $j >>log.txt 2>&1 Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。

结果:

Linux之Shell编程(12)--Shell输入/输出重定向实例演示一.Shell重定向简介二.Shell输出重定向三.Shell输入重定向今天是高考的第一天,我在这里祝愿各位高考的学生旗开得胜。 三.Shell输入重定向

输入重定向就是改变输入的方向,不使用键盘作为命令输入的来源,而是使用文件作为命令的输入。

输入重定向命令如下:

命令 解释 command


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有